#include <iostream>
#include <cstring>
using namespace std;
#define N 100010
// OJ题目用数组模拟链表 空间换时间
int e[N];
int n[N];
int head;
int idx;
// 初始化
void init()
{
    head = -1;
    idx = 0;
    memset(n, -1, N);
    memset(e, 0, N);
}
// 头插 如果实现为带头则可以和中间插入整合在一起
void push_front(int x)
{
    e[idx] = x;
    n[idx] = head;
    head = idx;
    idx++;
}
// 中间插入
void insert_after(int i, int x)
{
    e[idx] = x;
    n[idx] = n[i];
    n[i] = idx;
    idx++;
}
// 头删
void pop_front()
{
    head = n[head];
}
// 中间删 此题中包含尾删
void erase_after(int i)
{
    n[i] = n[n[i]];
}
int main()
{
    init();
    int m;
    cin >> m;
    while (m--)
    {
        char op;
        cin >> op;
        // 头插
        if (op == 'H')
        {
            int x;
            cin >> x;
            push_front(x);
        }
        // 删除
        else if (op == 'D')
        {
            int k;
            cin >> k;
            // 判断出头删
            if (k)
                erase_after(k - 1);
            else
                pop_front();
        }
        // 中间插
        else
        {
            int k;
            int x;
            cin >> k >> x;
            insert_after(k - 1, x);
        }
    }
    // 遍历
    for (int i = head; i != -1; i = n[i])
    {
        cout << e[i] << ' ';
    }
    return 0;
}